
/* (PARI) R. J. Cano, Tue Oct 7 2015. (Va sin acentos escritos)

   Realmente uno quisiera NO tener que conformarse con hallar un algoritmo. Otra leccion
   aparte de ser cuidadosos con la Aritmetica modular. En Matematicas no todo podra ser
   siempre condensado en una formula, o en forma de ecuacion. Por eso Ellas existen como ramas
   de especializacion de las Matematicas: Las Ciencias de la Computacion, con sus emblematicos
   conceptos de "Algoritmo" y "Proceso computacional". */

e0(x,y)={my(a=max(1,y));a*!(x%a)+x%a} /* Evita los ceros prohibidos en operaciones de modulo y division. */
                                      /* Entonces normaliza un numero "x" a modulo "y" reemplazando al 0 con "y". */

F( Q=290, d0=7, ppd=[4,4,4,4,4,4,25] )= {
  my( d= 0, p= 0 );
  while( p<Q, p+= ppd[ e0(d,7) ]; d++ );
  return( [ d, d\7, d-7*(d\7), e0( e0(d+d0,7) - (7-d0+1), 7 ) ] );
}


/* Ejemplos con los parametros por defecto:

 F(290)= [41, 5, 6, 5];
 F(294)= [42, 6, 0, 6];
 F(298)= [43, 6, 1, 7];
 F(320)= [44, 6, 2, 1];
 
  Ejemplo del alumno despistado interpretando mal
  el enunciado original al omitir o ignorar las
  paginas leidas los Domingos luego de leer 4 paginas
  solamente el Domingo que comenzo.

    F(290-4,7,4*[1,1,1,1,1,1,0])= [84, 12, 0, 6]

  Asi como responde, supone lo siguiente:  
    
 LMIJVSD  Semana
 ......*    0
 ******.    1
 ******.    2
 ******.    3
 ******.    4
 ******.    5
 ******.    6
 ******.    7
 ******.    8
 ******.    9
 ******.   10
 ******.   11
 *****$.   12
 
 Cada punto (.) representa cero paginas leidas.
 
 Cada asterisco (*) representa 4 paginas leidas.
 
 El unico dolar ($) representa solo 2 paginas
 leidas ese dia Sabado que termina.
 
 72*4+2= 290

 Realmente son 85 dias: El Domingo que se comenzo
 no entraba en la cuenta que se realizo con la
 llamada a F(); Por eso se restan esas 4 paginas
 de las 290.

 No importa lo que se haga, solo es posible terminar
 en un dia de la semana que segun la regla, pauta o
 patron de lectura especificado por el vector "ppd",
 ese dia SI se leen paginas. A modo de ilustracion
 notese que dado el vector "ppd" pasado a F() en el
 ejemplo anterior, para ningun valor de "Q" se obtiene
 "Domingo" o 7 en la ultima componente de la respuesta.
 
 La razon es que ningun dia Domingo se leeran las ultimas
 paginas, aunque las primeras se hayan leido el Domingo que
 se comenzo.
 
 (...The End?) */